package com.admin.vo.system;

import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel("ListMenuListVO(系统菜单)")
public class ListMenuListVO {

    @ApiModelProperty(value = "菜单id", required = true)
    private Long menuId;

    @ApiModelProperty(value = "父id", required = true)
    private Long parentId;

    @ApiModelProperty(value = "菜单名称", required = true)
    private String name;

    @ApiModelProperty(value = "菜单url")
    private String url;

    @ApiModelProperty(value = "权限标识", required = true)
    private String perms;

    @ApiModelProperty(value = "类型", required = true)
    private Integer type;

    @ApiModelProperty(value = "类型名称", required = true)
    private String typeName;

    @ApiModelProperty(value = "创建时间", required = true)
    private Integer gmtCreate;

    @ApiModelProperty(value = "修改时间", required = true)
    private Integer gmtModified;

    @ApiModelProperty(value = "子系统菜单")
    private List<ListMenuListVO> children;

    /**
     * 省
     */
    private Integer province;

    /**
     * 市
     */
    private Integer city;

    /**
     * 区县
     */
    private Integer area;

    /**
     * 获取
     * 
     * @return menu_id
     */
    public Long getMenuId() {
        return menuId;
    }

    /**
     * 设置
     * 
     * @param menuId
     */
    public void setMenuId(Long menuId) {
        this.menuId = menuId;
    }

    /**
     * 获取父菜单ID，一级菜单为0
     * 
     * @return parent_id 父菜单ID，一级菜单为0
     */
    public Long getParentId() {
        return parentId;
    }

    /**
     * 设置父菜单ID，一级菜单为0
     * 
     * @param parentId 父菜单ID，一级菜单为0
     */
    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    /**
     * 获取菜单名称
     * 
     * @return name 菜单名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置菜单名称
     * 
     * @param name 菜单名称
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     * 获取菜单URL
     * 
     * @return url 菜单URL
     */
    public String getUrl() {
        return url;
    }

    /**
     * 设置菜单URL
     * 
     * @param url 菜单URL
     */
    public void setUrl(String url) {
        this.url = url == null ? null : url.trim();
    }

    /**
     * 获取授权(多个用逗号分隔，如：user:list,user:create)
     * 
     * @return perms 授权(多个用逗号分隔，如：user:list,user:create)
     */
    public String getPerms() {
        return perms;
    }

    /**
     * 设置授权(多个用逗号分隔，如：user:list,user:create)
     * 
     * @param perms 授权(多个用逗号分隔，如：user:list,user:create)
     */
    public void setPerms(String perms) {
        this.perms = perms == null ? null : perms.trim();
    }

    /**
     * 获取类型 0：目录 1：菜单 2：按钮
     * 
     * @return type 类型 0：目录 1：菜单 2：按钮
     */
    public Integer getType() {
        return type;
    }

    /**
     * 设置类型 0：目录 1：菜单 2：按钮
     * 
     * @param type 类型 0：目录 1：菜单 2：按钮
     */
    public void setType(Integer type) {
        this.type = type;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    /**
     * 获取创建时间
     * 
     * @return gmt_create 创建时间
     */
    public Integer getGmtCreate() {
        return gmtCreate;
    }

    /**
     * 设置创建时间
     * 
     * @param gmtCreate 创建时间
     */
    public void setGmtCreate(Integer gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    /**
     * 获取修改时间
     * 
     * @return gmt_modified 修改时间
     */
    public Integer getGmtModified() {
        return gmtModified;
    }

    /**
     * 设置修改时间
     * 
     * @param gmtModified 修改时间
     */
    public void setGmtModified(Integer gmtModified) {
        this.gmtModified = gmtModified;
    }

    public List<ListMenuListVO> getChildren() {
        return children;
    }

    public void setChildren(List<ListMenuListVO> children) {
        this.children = children;
    }
}